package com.tuniu.agents.command;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * Command configuration class
 * Used to store command configuration information, can be serialized to the database
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CommandConfig {

    /**
     * Command ID
     */
    protected String id;

    /**
     * Command name
     */
    protected String commandName;

    /**
     * Command description
     */
    protected String description;

    /**
     * Command priority
     */
    protected Integer priority;

    /**
     * Matcher name
     */
    protected String matchName;

    /**
     * Action name
     */
    protected String actionName;

    /**
     * Command parameters
     */
    protected Map<String, Object> params;

    /**
     * Command lifecycle
     */
    protected CommandLifecycle lifecycle = CommandLifecycle.FOREVER;

    /**
     * Whether it has expired
     */
    protected boolean expired = false;
} 